The present invention relates, in general, to a multi-port switching system and method for a computer bus. More particularly, the present invention relates to a multi-port switching system and method for a computer bus of particular utility with the Small Computer System Interface ("SCSI") or other daisy chained buses.
The SCSI bus is a parallel, multi-master input/output ("I/O") bus which was adopted as an ANSI standard in 1986. Eight-bit SCSI can support up to eight devices simultaneously and a 16-bit SCSI-2 bus can support as many as sixteen devices. However, there must always be at least one initiator device and one target device in the system. Typically, a SCSI host adaptor is the initiator and all other devices (such as various computer mass storage disk drives) are generally the targets. Nevertheless, systems may also have multiple initiators and multiple targets.
An initiator device starts communication with a target device when something has to be accomplished by the target device, which then responds as directed to the initiator's commands. Notwithstanding, this "master/slave" relationship is not a simple one-way arrangement and an initiator may also become a target at some points in the data transfer cycle with the target becoming the initiator at other points.
Physically, the SCSI bus is an organization of dedicated wires and terminations wherein each wire has its own identified function and purpose. Moreover, the SCSI bus also consists of a defined command set or limited set of instructions, which allow the computer and peripheral to communicate over the physical bus.
As a system level interface, SCSI requires an operating "hand-shaking protocol" which organizes the transfer of data from a sending to a requesting point. Typically, there are three hand-shaking protocols, those being, asynchronous, synchronous and fast synchronous. With the asynchronous protocol, each byte must be requested and acknowledged before the next byte of information can be transferred. This results in a reliable, but relatively slow bus performance. On the other hand, synchronous and fast synchronous operations ignore the request/acknowledge hand-shake for data transfer only. This allows for faster operation than with the asynchronous protocol, but a certain fixed amount of time delay, or offset, must be allowed for request and acknowledge effects.
Additionally, there are two primary wiring techniques for the SCSI bus, that is, single-ended and differential wiring. The single-ended wiring technique utilizes a single wire to carry a particular designated signal from the initiator device to the target device. Each signal requires only one wire and a common ground or return provides the reference for all of the single-ended signals. Because the single-ended circuitry is susceptible to noise, single-ended cabling is generally limited to about 6 meters at data transfer speeds of approximately 5 Mhz or less.
On the other hand, the differential wiring approach utilizes a pair of complementary wires for each signal instead of a single wire referenced to a common ground. The differential signal offers superior noise immunity because it does not rely on a common ground thereby allowing the use of cables of up to 25 meters and higher speed operation of up to about 10 Mhz. An array of pull-up resistors on the cable help to insure signal integrity with terminating resistors at each end of the cable to maintain acceptable signal levels. Differential SCSI wiring is somewhat-more complicated than that experienced with the single-ended approach.
SCSI peripheral devices are also characterized as having either dual-ported or single-ported interfaces as well. However, although SCSI is commonly used as a primary I/O bus in many computer designs, there are still relatively few SCSI peripherals, such as Winchester, "fixed", "rigid" or hard disk drives (or other target devices), available with a dual-ported interface to allow more than one initiator device to be cabled directly to a given peripheral. In fact, many disk drive manufacturers are slow to provide devices including such a dual-ported feature due to the inherently higher cost (and more limited demand) than is encountered with the more commonly available single-ported versions. Moreover when a dual-ported interface to a disk drive is made available, it generally lags the release of the single-ported version by six months to one year. Therefore, due to the limited availability of dual-ported disk drives, storage subsystem designs are generally driven to some extent by the availability of a particular dual-ported disk drive.